package org.abc.fund.repository.funds;

import org.abc.fund.entity.funds.FundTagRelation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface FundTagRelationRepository extends JpaRepository<FundTagRelation, Long> {

    // 查询某基金的所有标签
    List<FundTagRelation> findByFundCode(String fundCode);

    // 删除某个标签关系
    void deleteByFundCodeAndTag_Id(String fundCode, Long tagId);

    // 根据标签名查找对应关系
    @Query("SELECT r FROM FundTagRelation r WHERE r.tag.name = :tagName")
    List<FundTagRelation> findByTagName(String tagName);

    // ✅ 添加此方法用于多标签查询
    List<FundTagRelation> findByTagNameIn(List<String> tagNames);

    // ✅ 可选：检查是否已绑定（用于防止重复打标签）
    boolean existsByFundCodeAndTag_Id(String fundCode, Long tagId);

    // ✅ 可选：删除某基金所有标签（如删除基金时调用）
    void deleteByFundCode(String fundCode);

}
